Use of third party ultra-wideband devices to establish geo-positional data

ABSTRACT

A system, method and article of manufacture are provided for determining a location of a wireless device in a wireless communication system. In one embodiment of the present invention, an initial request is transmitted to wireless devices having known locations for positioning information so that a location can be determined for a first wireless device having an undetermined location. Those wireless devices with known locations that receive the initial request in turn transmit positioning information to the first wireless device. If positioning information from less than a sufficient number of wireless devices with known locations is received by the first mobile wireless device, an additional request is then transmitted to other wireless devices. After responses to the request from one or more of these other wireless devices are received, communication then occurs with at least a portion of the responding wireless devices to obtain information relating to the distance between the first wireless device and the responding wireless devices. A location of the first wireless device is then estimated using the information obtained from the responding wireless devices.

[0001] This is a continuation-in-part of co-pending application Ser. No.09/745,498, titled “Use of Third Party Ultra-Wideband Devices toEstablish Geo-Positional Data,” filed Dec. 22, 2000, which is based onU.S. provisional application serial No. 60/255,469, filed Dec. 13, 2000,titled “Ultra-Wideband Communication System and Method,” both of whichare incorporated in their entirety by this reference.

FIELD OF THE INVENTION

[0002] The present invention relates generally to wireless communicationsystems and, more particularly, to accurate geo-location ofultra-wideband transceivers.

BACKGROUND OF THE INVENTION

[0003] Ultra-wideband communication systems and devices benefit from thetremendous potential for geo-positional accuracy of ultra-widebandtechnology. As a separate issue, the FCC has recently required allexisting cellular technology providers to employ some means ofgeographically locating all cellular phones for emergency purposes. Thisinitiative has been termed “e911” and will be a requirement of futurecellular technologies. Thus, it is foreseeable that the same demandswill be placed on future ultra-wideband devices.

[0004] Conventionally, ultra-wideband geo-positional information may beobtained by triangulating signals from three separate ultra-widebandtransmission towers whose fixed position is known. However, it isforeseeable that a mobile ultra-wideband device may not always be withinrange of three fixed transmission towers. In such a situation, theultra-wideband device's geo-location (i.e., geo-position) may not bedetermined through the conventional methods.

[0005] Thus, it may be appreciated that a geo-location method that takesadvantage of other mobile ultra-wideband devices of known location toderive the position of the ultra-wideband device that is in need oflocation has a better chance of success in these circumstances.

SUMMARY OF THE INVENTION

[0006] A system, method and article of manufacture are provided fordetermining a location of a wireless device in a wireless communicationsystem. In one embodiment of the present invention, an initial requestis transmitted to wireless devices having known locations forpositioning information so that a location can be determined for a firstwireless device having an undetermined location. Those wireless deviceswith known locations that receive the initial request in turn transmitpositioning information to the first wireless device. If positioninginformation from less than a sufficient number of wireless devices withknown locations is received by the first mobile wireless device, anadditional request is then transmitted to other wireless devices. Afterresponses to the request from one or more of these other wirelessdevices are received, communication then occurs with at least a portionof the responding wireless devices to obtain information relating to thedistance between the first wireless device and the responding wirelessdevices. A location of the first wireless device is then estimated usingthe information obtained from the responding wireless devices.

[0007] Alternatively, in some circumstances, the responding wirelessdevices may simply provide a distance to the first wireless device. Anexample of such a circumstance is a lost child carrying the firstwireless device and several searchers, each with a responding wirelessdevice. In this example, the searchers are not interested in thegeo-position of the child, but in the child's distance from each of thesearchers. In this scenario a local triangulation without ageo-positional reference is all that is required to find the child.Thus, a location of the first wireless device is estimated using theinformation (distance or location) obtained from the responding wirelessdevices and the positioning information received from the wirelessdevices with known locations.

[0008] In one aspect of the present invention, at least a portion of thewireless devices may comprise ultra-wideband devices. In a furtheraspect of the present invention, the additional request may beretransmitted. In such an aspect, the additional request may also beretransmitted at a higher power level if an insufficient number ofresponses are received in response to the previous request.

[0009] In another embodiment of the present invention, if positioninginformation is received from a sufficient number of wireless deviceswith known locations, then the location of the first wireless device maybe determined utilizing just the information obtained from the wirelessdevices with known locations. In yet another embodiment of the presentinvention, the location of the first wireless device may be estimatedusing only the information obtained from the other wireless devices.

[0010] These and other features and advantages of the present inventionwill be appreciated from review of the following detailed description ofthe invention, along with the accompanying figures in which likereference numerals refer to like parts throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The foregoing and other features, aspects and advantages arebetter understood from the following detailed description, appendedclaims, and accompanying drawings where:

[0012]FIG. 1 is a schematic diagram of an exemplary ultra-widebandcommunication system capable of utilizing a multiple access scheme inaccordance with an embodiment of the present invention;

[0013]FIG. 2 is a schematic diagram of an ultra-wideband geo-positionalmodel;

[0014]FIG. 3 is a schematic block diagram of an ultra-wideband wirelessdevice/transceiver in accordance with an embodiment of the presentinvention;

[0015]FIG. 4 is a schematic diagram of an ultra-wideband geo-positionalmodel where multiple mobile devices collaborate with a requesting deviceto allow the requesting device to determine its location in accordancewith an embodiment of the present invention;

[0016]FIG. 5 is a flowchart of a process for triangulation and storageof the geo-positional information based on three fixed position devicesin accordance with an embodiment of the present invention;

[0017]FIG. 6 is a flowchart of a process for determining and storing ageographic location of a mobile wireless device in a wirelesscommunication system in accordance with an embodiment of the presentinvention;

[0018]FIG. 7 is a flowchart processing replies from other wirelessdevices and 15 testing for data quantity and quality criteria inaccordance with an embodiment of the present invention;

[0019]FIG. 8 is a flowchart of a process for performing a rangingdialogue to determine a requesting wireless device's distance from otherreplying wireless devices in accordance with an embodiment of thepresent invention;

[0020]FIG. 9 is a flowchart of a process for time correction in arequesting wireless device in accordance with an embodiment of thepresent invention;

[0021]FIG. 10 is a schematic diagram of a representative hardwareenvironment in accordance with an embodiment of the present invention;

[0022]FIG. 11 is an illustration of different communication methods;

[0023]FIG. 12 is an illustration of two ultra-wideband pulses; and

[0024]FIG. 13 is a schematic diagram of an ultra-wideband geo-positionalmodel where multiple mobile devices collaborate with a requesting deviceto allow the requesting device to determine its location and elevationin accordance with an embodiment of the present invention;

[0025] It will be recognized that some or all of the Figures areschematic representations for purposes of illustration and do notnecessarily depict the actual relative sizes or locations of theelements shown.

DETAILED DESCRIPTION OF THE INVENTION

[0026] In the following paragraphs, the present invention will bedescribed in detail by way of example with reference to the attacheddrawings. Throughout this description, the preferred embodiment andexamples shown should be considered as exemplars, rather than aslimitations on the present invention. As used herein, the “presentinvention” refers to any one of the embodiments of the inventiondescribed herein, and any equivalents. Furthermore, reference to variousfeature(s) of the “present invention” throughout this document does notmean that all claimed embodiments or methods must include the referencedfeature(s).

[0027] Embodiments of the present invention use the known geographicposition of one or more mobile wireless devices (in a preferredembodiment, ultra-wideband devices) to triangulate the position ofadditional mobile wireless devices that are not within geographic rangeof three mobile or fixed wireless devices such as fixed base stationsand/or transmission towers, or mobile wireless devices. It should beunderstood that the mobile wireless devices whose positions are knownneed not be restricted just to handheld-type mobile devices. Suchdevices may also include ultra-wideband components in mobile phones,mobile internet devices, portable radios, personal data assistants,desktop computers or appliances located in homes, automobiles, officeenvironments and other ultra-wideband devices.

[0028] A preferred embodiment of the present invention employsultra-wideband, or impulse radio that comprises a multiplicity ofelectromagnetic pulses that are emitted at nanosecond or picosecondintervals (generally tens of picoseconds to a few nanoseconds induration). For this reason, ultra-wideband is often called “impulseradio.” Because the excitation pulse is not a modulated waveform, UWBhas also been termed “carrier-free” in that no apparent carrierfrequency is evident in the radio frequency (RF) spectrum. That is, theUWB pulses are transmitted without modulation onto a sine wave carrierfrequency, in contrast with conventional radio frequency technology. Forexample, ultra-wideband requires neither an assigned frequency nor apower amplifier.

[0029] Conventional radio frequency technology employs continuous sinewaves that are transmitted with data embedded in the modulation of thesine waves' amplitude or frequency. For example, a conventional cellularphone must operate at a particular frequency band of a particular widthin the total frequency spectrum. Specifically, in the United States, theFederal Communications Commission has allocated cellular phonecommunications in the 800 to 900 MHz band. Cellular phone operators use25 MHz of the allocated band to transmit cellular phone signals, andanother 25 MHz of the allocated band to receive cellular phone signals.

[0030] Another example of a conventional radio frequency technology isillustrated in FIG. 11. 802.11a, a wireless local area network (LAN)protocol, transmits radio frequency signals at a 5 GHz center frequency,with a radio frequency spread of about 5 MHz.

[0031] In contrast, an UWB pulse may have a 1.8 GHz center frequency,with a frequency spread of approximately 4 GHz, as shown in FIG. 12,which illustrates two typical UWB pulses. FIG. 12 illustrates that thenarrower the UWB pulse is in time, the higher its center frequency andthe broader the spread of its frequency spectrum. This is becausefrequency is inversely proportional to the time duration of the pulse. A600 picosecond UWB pulse will have about a 1.8 GHz center frequency,with a frequency spread of approximately 4 GHz. And a 300 picosecond UWBpulse will have about a 3 GHz center frequency, with a frequency spreadof approximately 8 GHz. Thus, UWB pulses generally do not operate withina specific frequency, as shown in FIG. 11. And because UWB pulses arespread across an extremely wide frequency range, UWB communicationsystems allow communications at very high data rates, such as 100megabits per second or greater.

[0032] Also, because the UWB pulse is spread across an extremely widefrequency range, the power sampled at a specific frequency is very low.For example, a UWB one-watt signal of one nano-second duration spreadsthe one-watt over the entire frequency occupied by the pulse. At anyinstantaneous frequency, such as at the carrier frequency of a 802.11 asystem, the UWB pulse power present is about one nano-watt (for afrequency band of 1 GHz). This is well within the noise floor of the802.11a system and therefore does not interfere with the transmission ofthe 802.11a signals. Generally, the multiplicity of UWB pulses aretransmitted at relatively low power (when sampled at a specificfrequency), for example, at less than −30 power decibels to 60 powerdecibels.

[0033]FIG. 1 is a flowchart of a process 100 for determining ageographic location of a mobile wireless device having anundetermined/unknown geographic location in a wireless communicationsystem in accordance with an embodiment of the present invention. Inoperation 102, at least one initial request is transmitted from a firstmobile wireless device having an undetermined/unknown geographiclocation to fixed position wireless devices having known geographiclocations (e.g., such as base stations and/or transmission towers) forpositioning information for determining a geographic location of thefirst mobile wireless device. Those fixed position wireless devices withknown geographic locations that receive the initial request (i.e., inthe communication range of the first mobile wireless device) transmit,in response, positioning information to the first mobile wireless devicewith the undetermined geographic location (Note: for purposes of thisportions of the description, communication range may be defined as aregion inside which wireless communication with the first mobilewireless device may be achieved).

[0034] If positioning information from less than a sufficient number offixed position wireless devices of known geographic location is receivedby the first mobile wireless device (e.g., such as when less than thesufficient number of fixed position wireless devices are in thecommunication range of the first mobile wireless device), then inoperation 104, the first mobile wireless device then transmits anadditional request for responses/replies from other mobile wirelessdevices in the communication range of the first mobile wireless device.In one aspect of the present invention, at least a portion of thetransmitted requests may be coded (such as in the form of a key sequencerequest). Responses to the request are then received by the firstwireless device from one or more other mobile wireless devices in thecommunication range in operation 106. Communication is then initiated inoperation 108 with at least a portion of the responding other mobilewireless devices to obtain information (i.e., data) relating to thedistance between the first mobile wireless device and the respondingother mobile wireless devices communicating with the first mobilewireless device.

[0035] In operation 110, a position/location of the first mobilewireless device is 20 then estimated with a triangulation method usingthe information obtained from the responding other mobile wirelessdevice communicating with the first wireless device and (if any wasreceived by the first mobile wireless device) positioning informationreceived from the less than sufficient number of fixed position wirelessdevices with known geographic locations.

[0036] In an aspect of the present invention, the sufficient number offixed position wireless devices with known geographic locations maycomprises at least three fixed position wireless devices with knowngeographic locations. In another aspect of the present invention, theadditional request (see operation 104) may be re-transmittedperiodically a predetermined number of times. In such an aspect, theadditional request may be re-transmitted at a higher power level (i.e.,to increase the range that the additional request is transmitted fromthe first mobile wireless device) if an insufficient number of responsesare received (after a predetermined amount of time) in response to theprevious transmission of the additional request.

[0037]FIG. 2 is a schematic diagram of an ultra-wideband geo-positionalmodel 200 where fixed, known position wireless devices such astransmitters/base stations 202, 204, 206 collaborate with a requestingwireless device 208 to allow the requesting device to determine itslocation in accordance with an embodiment of the present invention. Onefeature of ultra-wideband communication systems is that highly accurategeographical positional information may be discernable from signalsreceived from at least three ultra-wideband transmitters (e.g., 202,204, 206) having known geographical positions. Typically, adevice/transceiver (e.g., 208) having an unknown/undetermined locationreceives ultra-wideband signals from three fixed ultra-widebandtransmitters, with the signals sent from each transmitter embedding itstime of transmission and the geographical position of each respectivetransmitter. Using the known position of each fixed transmitter, andmeasuring the slight timing variations between received signals, thedevice with an unknown geographical location can triangulate andaccurately determine its geographical position. Using such triangulationprocedures, an ultra-wideband device can determine its geographicalposition to within a few centimeters.

[0038] As previously mentioned, in an aspect of the preset invention,the wireless devices may comprise impulse radio communication devicessuch as, for example ultra-wideband radio (also know as digital pulsewireless) communication devices. FIG. 3 is a schematic block diagram ofan ultra-wideband wireless device/transceiver 300 in accordance with anembodiment of the present invention. The device 300 has a plurality ofcomponents comprising logic (i.e., circuitry), software, or somecombination of logic and software. In particular, the device 300includes a transmitter and a receiver components 302, 304 capable oftransmitting and receiving wireless signals 306, 308 (preferablyultra-wideband radio communication signals) respectively. In oneembodiment, the signals may carry digital data communication informationwhich may be packetized according to known techniques.

[0039] The transmitter and a receiver components 302, 304 may also becoupled to additional components 310 included in the device 300. In anembodiment of the present invention, one of the additional componentsmay comprise a location component 312. In an aspect of the presentinvention, the location component 312 may include a timing and locationdatabase controller 314 which manages and controls a timing and locationdatabase 316 in which information such a geo-positional may be stored.

[0040] In fixed ultra-wideband transmission towers/base stations, theirgeographic position is known and can be stored in local memory. Inmobile ultra-wideband devices 300 that are within range of three or morefixed ultra-wideband transmission towers, geo-positional information canbe actively recorded, updated and stored this in the Dynamic Timing andLocation Database 316 of the device 300 on an ongoing basis. Activeupdating and recording of geo-positional information can occurautomatically on a predetermined time interval, or queried on command.

[0041] For example, in an embodiment of the present invention, thelocation component 312 may receive signals from at least three otherwireless devices and then use timing relationships and locationinformation provided in these signals to accurately determine a locationfor the wireless device 300. With the exact location of the transceiverunit 300 known, and the location of the fixed transmitters known, thelocation component 312 may be able to precisely determine the distancefrom the wireless device 300 to the other wireless device. In someembodiments, this distance information, in turn, may be provided to thetransmit component 302 so that it can be used to help more accuratelyadjust the level of power the transmit component uses to transmit thesubsequent signals.

[0042]FIG. 4 is a schematic diagram of an ultra-wideband geo-positionalmodel 400 where multiple mobile devices collaborate with a requestingdevice to allow the requesting device to determine its location inaccordance with an embodiment of the present invention. In embodimentsof the present invention, tertiary mobile wireless devices (e.g.,wireless device 402) that are not within range of three or more towers(e.g., transmission towers 404, 406, 408, 410, 412, 414) can request thegeo-positional information stored in the Timing and Location Database ofmobile ultra-wideband devices (e.g., devices 416, 418, 420) that are inrange and have already stored this information. Such tertiary mobiledevices 402 can then use the results of their query of other mobileultra-wideband devices to triangulate their own position.

[0043] In an embodiment of the present invention, the geographiclocation of the first mobile wireless device may be determined just frominformation obtained from the fixed position wireless devices with knowngeographic locations utilizing a triangulation method if positioninginformation is received by the first mobile wireless device from asufficient number (or more) of fixed position wireless devices withknown geographic locations (e.g., such as when the sufficient number offixed position wireless devices with known geographic locations are inthe communication range of the first mobile wireless device). FIG. 5 isa flowchart of a process 500 for triangulation and storage of thegeo-positional information based on three fixed position devices inaccordance with an embodiment of the present invention. When anindividual mobile ultra-wideband device A requires a locationdetermination in operation 502, it transmits a coded request (in theform of a key sequence) for the geo-position of three otherultra-wideband devices/towers whose position is known in operation 504.This request may be sent several times (polled) at a pre-selected lowestpower setting. By starting key-sequence transmissions at the lowestpossible power level, the key-sequence will only reach the smallesttransmission range and potentially the smallest number of nearbyultra-wideband devices that might respond to the key sequence requestfor information. The awaited responses are received in a pre-identifiedcommunications channel or set of such channels. If device A is in rangeof three towers (see decision 506), then it triangulates its ownposition in operation 508 based on the responses and time stamps, andstores this information in its timing and location database 316 via itstiming and location database controller 314.

[0044] The timing and location database 316 of the respondingultra-wideband device contains a position value and a time stamp thatspecifies the time that position value was obtained. In oneimplementation, the responding device may delay response to therequesting ultra-wideband device until after the respondingultra-wideband device has updated its own most recent geographicposition. However, in a preferred implementation, the decision to usethe position reported by the responding device lies with the requestingdevice. The requesting device makes this determination based on the timestamp and other information provided by the responding device. Themoving/mobile nature of the responding ultra-wideband devices and theneed to synchronize the requesting device with the responding devicesalso complicate the determination of location.

[0045] If the querying wireless device (i.e., device A) is determinednot to be in range of at least three towers in decision 506, then otherwireless devices (e.g., other mobile wireless devices) proximate to thequerying device may be queried per operation 510. In one embodiment ofthe present invention, the location of the first mobile wireless devicemay be estimated with a triangulation method using only the informationobtained from the at least a portion of the responding other mobilewireless device if no positioning information is received by the firstmobile wireless device from fixed position wireless devices with knowngeographic locations (i.e., zero (0) fixed position wireless devices).FIG. 6 is a flowchart of a process for determining and storing ageographic location of a mobile wireless device in a wirelesscommunication system per operation 510 in accordance with an embodimentof the present invention. FIG. 6 shows the overall position discoveryalgorithm based on a requesting mobile device's ability to contact asuitably large number of location-self-aware devices. As was the case inFIG. 5, the device acquiring location is referred to as device A in FIG.6.

[0046] Device “A” first tries to communicate with three or more basestations in order to triangulate its position (per operations 504, 506,508). Since the base stations have exact location information and highlyaccurate timekeeping hardware, this may be the most accurate method ofposition determination. If fewer than three base stations are available(per decision 506), the device (i.e., device A) starts the request forinformation from other mobile devices by transmitting a key-sequence atthe lowest possible power level per operation 510. In operation 602,replies are processed and tested for data quality and quantity criteria(preferably utilizing the timing and location database and controller316, 314). In one aspect, each responding device may be identified byits unique ID number. Additionally, the range of IDs for base stationsmay not overlap those of mobile devices. If there are no replies, or ifthe replies contain data of low accuracy, device A keeps on polling forrespondents. If polling the preprogrammed number of times fails togenerate any replies, the requesting device may then ramp up thetransmit power. In operation 604, a ranging dialogue is performed todetermine the requesting wireless device's distance from other replyingwireless devices in order to permit the estimation of the requestingwireless device's position in operation 606 based on the determineddistances weighted by their freshness using a triangulation method. Inan embodiment of the present invention, a time stamp for the estimatedposition/location may be generated, and then the estimatedposition/location and the associated time stamp may be stored in amemory (such as in a timing and location database) of the first mobilewireless device utilizing a timing and location database controller ofthe first mobile wireless device.

[0047]FIG. 7 is a flowchart processing replies from other wirelessdevices and testing for data quantity and quality criteria per operation604 of FIG. 6 in accordance with an embodiment of the present invention.As discussed previously, if device A is not in range of three towers, itthen transmits the key sequence in order to locate other mobile devicesper operation 510. As the other mobile devices respond, a dialogue isestablished between the requestor and each responding device todetermine distance and clock disparity. If the requesting device doesnot receive a response in a reasonable time (in a preferred embodiment,up to 5 msec—depending on the environment), the requesting device willretry several times using the same power level and multiple accesschannels (see decision 702). If no devices have replied to this repeatedpolling, then a power ramping algorithm is initiated, and the keyedsequence is transmitted again at a higher power level (see operation704). Once the maximum allowable power is reached without response (seedecision 706), the requestor will switch to another multiple accesschannel in operation 708.

[0048] With continuing reference to FIG. 7, important data quality andquantity criteria are also used device A to determine the value of thedata it receives. It should be noted that only other wireless devicesthat have acquired their position will respond to the query of operation510. If there are no responses to the polling, device A boosts itsoutput power level until another mobile device responds (per operation708).

[0049] With reference to the YES path of decision 702, if a deviceproximate to the requesting device (i.e., device A) receives the requesttransmitted by device A and has acquired information concerning its owngeographic position/location, then such a device may transmit a responseto the device A (the responding mobile device will be referred tohereafter as device B). Device “B” may encode several pieces ofinformation into its reply including, for example: (1) the freshness ofits position information (i.e., how recently the position informationwas obtained and/or updated); (2) a time of receipt that the query fromdevice A was received by device B; and (3) a time of reply that a replyto the to the query was transmitted from device B to device A. Uponreceiving the reply, device A can decode the reply in order to obtainthe encoded information in operation 710.

[0050] With continuing reference to FIG. 7, the information obtainedfrom each reply to the request by device A can be tested to determinehow much emphasis should put on the information provided in the responseof the particular device B. In decision 712, the information from adevice B may be tested to determine whether the position information ofdevice B is stale (i.e., too old and/or has not been updated recently).Clearly, if device B has not updated its information in a long time (forexample, in a preferred embodiment, longer than 100 msec), the locationof device B may have incurred significant error.

[0051] Next, in decision 714, the information decoded from the responsemay be tested to determine if the delay taken by device B in respondingto the request is above a predetermined threshold (e.g., in a preferredembodiment, greater than 50 msec). For example, if device B took aninordinate amount of time to process the query (hereafter referred to asprocessing time), device B may be overloaded and prone to threadconflicts that will induce timing errors. In such a case, device B'sreply will not be as accurate as device A may require. After performingthe tests in decisions 712 and 714, a subsequent determination is madeby device A as to whether the replies of three or more devices (i.e.,three or more device B's) have been received by device A in decision716. If three or more device B's have replied and at least three of thereplies pass the tests set forth in decisions 712 and 714 (see the YESpaths of decisions 712 and 714), then the dialog to determine device A'sdistance from three other devices may be executed per the YES path ofdecision 716 and operation 604. Conversely, if the information of areply fails either of the tests (see the NO paths of decisions 712 and714), or the replies of less than three device B's have past the tests,then per operation 718, a polling sequence for other devices isinitiated.

[0052] There are several circumstances where distance calculation basedon nearby devices may be prone to certain types of error. For someresponding devices the processing delay experienced by device B will bea multiple of the signal's propagation delay. In such cases, theresponse by “B” may be degraded by simultaneous occurring multi-pathreflections from the original query. In such cluttered environments,where reflection of the query may return to “A” at the same time as thereply from “B”, it becomes necessary to re-query “B” and notify it ofthe multi-path duration. Once “B” receives this information it canresubmit its reply so it will not be degraded by multi-path. On theother hand, if “A” calculates device B to be very far away, then thepossibility increases that the reception is not direct line, andsignificant error is highly probable.

[0053] Once three or more devices have replied, then an estimatedposition can be obtained per 606. If more than three devices reply tothe query, a determination can be made based on the information providedby the responding devices as to the quality of the estimated distances.Any devices over the required three can be graded and then added to theestimate weighted by a quality factor calculated from the time of lastupdate, chance of multi-path interference, replier overload, anddistance degradation.

[0054] In yet another aspect of the present invention, the obtainedinformation relating to the distance between the first mobile wirelessdevice and the portion of the responding other mobile wireless devicesmay include a calculated distance between the first mobile wirelessdevice and the portion of the responding other mobile wireless devices,a transmission time, and a scaling factor.

[0055]FIG. 8 is a flowchart of a process for performing a rangingdialogue to determine a requesting wireless device's distance from otherreplying wireless devices per operation 604 in accordance with anembodiment of the present invention. FIG. 8 shows the dialogue that mustgo on in order for device A to determine its position with respect todevice B. In operation 802, device A starts a timer that is used tocount the clock ticks between the time device A sends a query and thetime “A” receives a response from “B”. This time is denoted as“Δ_(tsrA)” (or “DtrsA”). This time includes the round trip signal timeplus the time it takes for device B to respond to the query (asubstantial delay given that device B is likely to be busy at the timethe query is received). Since the oscillator on device A may haveundergone some drift since the last time device A's position wasdetermined, Δ_(tsrA) is only an estimate of the true round trip time.

[0056] Once device B receives the query in operation 804, device B marksthe receipt time, starts the receive-send delay timer and continuesprocessing those threads that were being processed at the time itreceived the query until it has enough time to respond to the query (seeoperations 806 and 808). When device B is ready to respond to the query,“B” stops the timer and calculates the receive-send delay Δ_(trsB) (or“DtrsB”) and A's time scaling factor in operation 810.

[0057] In operation 812, device A receives the reply, stops the roundtrip timer, and calculates the round-trip time “Δ_(trsA)” (or “DtrsA”).Device A then encodes this value into a message to be sent to device Bat its next “time beacon” mark in operation 814. A time beacon markoccurs at the end of a specified time period that starts with thesending of the original query. The time beacon period may either be apreprogrammed constant for both devices A and B, or its value may betransmitted by devices A to B in the initial query.

[0058] In operation 816, device B receives the message and decodes theround trip time. Device B then calculates the time difference betweenthe original query and the reply at the “time beacon” mark to calculatethe true beacon period (“DtbB”) (see operation 816). In operation 818,device B then uses the ratio of the beacon period preprogrammed indevice A to the true beacon period as calculated by device B as amultiplier (i.e., the “scaling factor”) to correct the round trip timeas calculated by device A. Once the actual time is obtained, thereceive-send delay incurred by device B can be subtracted out to obtainthe actual round trip propagation time. Device B then sends the scalingfactor, transmission time and calculated distance to device A inoperation 820. In operation 822, upon receipt, device A may use thisinformation transmitted from device B for time correction.

[0059]FIG. 9 is a flowchart of a process for time correction in arequesting wireless device per operation 822 of FIG. 8 in accordancewith an embodiment of the present invention. As set forth in FIG. 9,shows that as soon as device A receives the transmission from device B(see operation 902), device A resets its clock cycle counter inoperation 904. Device A then decodes the transmission and extracts theparameters for storage in its timing and location database (seeoperation 906).

[0060] Besides updating its location, device A can use these parametersto 15 resynchronize its clock. In one aspect of the present invention,at least a portion of the obtained information (such as the transmissiontime and scaling factor) may be utilized to update an internal clock ofthe first mobile wireless device. In closer detail, this may beaccomplished per operation 908 by calculating a Receipt Time using thefollowing equation:

Receipt Time=(transmission time of device B+distance/speed oflight)+(time required to process transmission and reset clock cyclecounter),

[0061] where:

(time required to process transmission and reset clock cycle counter)(cycles required to process transmission and reset the clock cyclecounter)*(scaling factor)

[0062] Device “A” then stores the calculated Receipt Time in operation910. Subsequent time calculations by device A are then based on thefollowing equation:

True Current Time=(value of clock cycle counter)*(scalingfactor)+(Receipt Time)+(number of cycles to calculate and process(transmit, store, etc.) True Current Time)

[0063] In multi-user environments, it is feasible that dozens ofultra-wideband devices may be within transmit/receive range of thelocation-requesting ultra-wideband device. Simultaneous responses fromall of these devices can “collide” and prove to be unintelligible to therequesting device. In an aspect of the present invention, a set ofcollision-avoidance schemes may be provided which are designed to reducecollisions when an individual ultra-wideband device requestsgeo-positional information from multiple nearby ultra-wideband devicesin a multi-user environment.

[0064] Implementations of collision avoidance schemes may employ thefollowing:

[0065] 1. Pre-identification of several multiple access channels to beused for receiving responses to the geo-positional key sequence andassign one of these channels to each mobile device. This reduces butdoes not eliminate the possibility that multiple responses to the keysequence request will be received in the same channel;

[0066] 2. Superposition of multiple coincident responses using pulseposition modulation (a preferred modulation scheme) may lead todisallowed pulse adjacency at the receiver. If this happens, therequesting device may ignore the reply. The responding devices expect arapid acknowledgement from the requesting device (up to 5 msec dependingon the environment). The lack of a prompt acknowledgement from therequesting device may induce the responding devices to retransmit theirresponses using other pre-identified multiple access channels assignedfor positional response information. To decrease the probability thatsecond responses from multiple devices will interfere with each other,these multiple access channels can be chosen at random and/or thetransmission can be postponed by random delays. These random factors canbe obtained by using a random number generator where the seed is basedon an individual device's unique identification code. The individualdevice's ID codes can also be used directly to institute a lag that isunique to each device; and

[0067] 3. The geo-positional key sequence may be generated at the lowestpossible power level, and the power level is increased only afterbetween 3 and 10 polling sequences have been transmitted with noresponse. The power ramping and polling sequence proceeds until thefirst response is obtained or until the assigned maximum power level hasbeen reached. The power level is increased gradually such that thepotential number of new respondents is kept low while insuring theminimum number or respondents, three, is achieved as rapidly aspossible. After maximum power is reached with no response, theultra-wideband device will then switch channels and start the pollingand power ramping sequence again at the lowest power setting.

[0068] Embodiments may also include a repetitive polling sequence thathelps to assure that a potential respondent will be able to receive therequest. Since the requesting device expect a rapid acknowledgement fromthe responding devices, if the requesting devices do not receive such anacknowledgement in a reasonable time (up to 5 msec depending on theenvironment), then the requester will retry up to 10 polling sequencesbefore ramping up the power or moving to another multiple accesschannel.

[0069] Additionally, embodiments may provide a means to simultaneouslysynchronize the users clock and calculate the distance based on oneround trip from the responding device.

[0070] Thus embodiments of the present invention may allow for theemployment of geo-positional information in a broader range ofenvironments. It uses and “piggybacks” the existence of multi-userenvironments to extend the capacity of the ultra-wideband system. Itextends the capacity for acquisition of geo-positional informationthroughout a multi-user ultra-wideband environment. Aspects of thepresent invention may also help to reduce the probability of collisionsin multi-user environments. The ability to extend geo-positionalfunctionality under a wider variety of circumstances may become a futurerequirement of FCC regulations under extension of their “e911” policy.

[0071] Referring to FIG. 13, a schematic diagram of an ultra-widebandgeo-positional model 1100 is illustrated. Multiple ultra-wideband (UWB)devices collaborate with a requesting UWB device to enable therequesting device to determine its location and elevation in accordancewith an embodiment of the present invention. One feature of thisembodiment of the present invention is that an elevation of the UWBrequesting unit 1105 can be determined. This can be helpful in manysituations, for example, where the location of an individual in ahigh-rise building must be determined. In addition, one feature of thisembodiment of the present invention is that it accounts for situationswhere the elevation between an UWB requesting unit 1105 is not the sameas the elevation of the other UWB units 1110.

[0072] Referring again to FIG. 13, the location of an UWB requestingunit 1105 can be determined by measuring the time delay in a signaltransmitted by the UWB requesting unit 1105 to each of the UWB units1110. The UWB units 1110 may have either a fixed location or they may bemobile UWB units. One method of finding the location of the UWBrequesting unit 1105 employs radio triangulation and calculates distancefrom the amount of time required for a signal transmitted by the UWBrequesting unit 1105 to reach each of the UWB units 1110. Specifically,the distance between the UWB requesting unit 1105 and each of the UWBunits 1110 can be determined based on the amount of time it takes for asignal to travel between the devices. Each distance generates a radius,with each UWB unit 1110 at the center of a circle defined by eachradius. The intersection of the three circles defines the location ofthe UWB requesting unit 1105.

[0073] An alternative technique to determine a location of an UWBrequesting unit 1105 may employ two directional antennas that may beincorporated into the UWB units 1110. For example, a phased arrayantenna or other type of antenna capable of determining direction may beemployed and only two antennas would be required to determine thelocation of an UWB requesting unit 1105. This is because a point (theUWB requesting unit 1105) can be found at the intersection of two arcsformed by the distance and direction information supplied by the UWBunits 1110.

[0074] As discussed above, the location of the UWB requesting unit 1105can also be determined by obtaining information from other devices notinitially queried. With reference to FIG. 4, if an initial requesttransmitted by the UWB requesting unit 1105 does not result in asufficient amount of data to generate a location, a second request forinformation from other UWB units may be transmitted. These tertiarydevices, fixed or mobile, may then submit information to the UWB units1110 which will then relay the information to the UWB requesting unit1105, or the tertiary devices may submit the information directly to theUWB requesting unit 1105.

[0075] Again referring to FIG. 13, a method of determining an elevationof an UWB requesting unit 1105 will now be described. As shown in theFigure, a calculated distance from each UWB unit 1110 may result inthree different elevation error points 1115. This may occur when an UWBrequesting unit 1105 transmits a request to the UWB units 1110 todetermine a location of the UWB requesting unit 1105, and the UWBrequesting unit 1105 is at a different elevation than the UWB units1110. The elevation error points 1115 represent distances that arebeyond the actual location of the UWB requesting unit 1105. Theadditional distance reflects the elevation difference between the UWBrequesting unit 1105 and the UWB units 1110.

[0076] However, one embodiment of the present invention includescomputer logic or computer readable program code to determine a positionand elevation of an UWB requesting unit 1105 when the elevation of theUWB requesting unit 1105 is different than the elevation of the UWBunits 1110. One method involves the use of the Pythagorean theorem. Thismethod employs the total distance from a UWB unit 1100 to the elevationerror point 1115 as the hypotenuse of a triangle. Another side of thetriangle is determined by taking the difference between the distancefrom the UWB requesting unit 1105 and the elevation error point 1115 andsubtracting that distance from the distance between the UWB unit 1100and the elevation error point 1115. With two sides of an imaginarytriangle determined, the third side of the triangle can be found usingthe Pythagorean theorem. In the present invention, the third side of thetriangle represents the elevation of the UWB requesting unit 1105.

[0077] In a preferred embodiment of the present invention, thePythagorean calculation described above is performed three times, usingthe distance data from each of the three UWB units 1100 to theirrespective elevation error points 1115. Thus, the elevation of the UWBrequesting unit 1105 is found, and determining the elevation of the UWBrequesting unit 1105 eliminates the elevation error and thesubstantially precise location of the UWB requesting unit 1105 isresolved.

[0078] The above-described calculations require an approximate locationof the UWB requesting unit 1105. One embodiment of the present inventiondetermines a centroid of the elevation error area 1120. The centroid ofthe elevation error area 1120 is then used as an approximate location ofthe UWB requesting unit 1105. The elevation error area 1120 comprises anarea defined by three imaginary lines joining the three elevation errorpoints 1115, and the centroid is the point within the area at which thecenter of mass would be if the area had a mass.

[0079] Alternative methods of determining an approximate location of theUWB requesting unit 1105 may employ a variety of other optimizationtechniques, such as adaptive neural networks, or other methods availableto those skilled in the art.

[0080] As also discussed above, if an insufficient amount of informationis received by the UWB requesting unit 1105 from the UWB units 1110, asecond request may be transmitted by the UWB requesting unit 1105 toother more-distant UWB units that can then supply the informationnecessary to fix the elevation and location of the UWB requesting unit1105.

[0081] In addition, an alternative embodiment to the present inventionmay include computer logic or computer programs that access a terrainelevation database, such as topographical maps, terrain maps or otherelevation information to determine an elevation of a UWB requesting unit1105. In addition, a historical map or historical information based onprevious elevation determinations in the area of the UWB requesting unit1105 may also be accessed to determine an elevation of the UWBrequesting unit 1105. As discussed above, one feature of the presentinvention is that a UWB requesting unit 1105 can determine its elevationbased on information obtained from either local UWB units 1110 ormore-distant units, that directly communicate with the UWB requestingunit 1105, or that are accessed via the UWB units 1110. Thesemore-distant units create an ad hoc network to provide a sufficientamount of information to determine the elevation of the UWB requestingunit 1105.

[0082]FIG. 10 illustrates a representative hardware environment 1000 bywhich embodiments of the present invention may be carried out isdepicted in FIG. 10. In the present description, the varioussub-components of each of the components may also be consideredcomponents of the system. For example, particular software modulesexecuted on any component of the system may also be consideredcomponents of the system. The hardware configuration 1000 illustrated inFIG. 10 includes a central processing unit 1002, such as amicroprocessor, and a number of other units interconnected via a systembus 1004.

[0083] The hardware configuration 1000 shown in FIG. 10 includes aRandom Access Memory (RAM) 1006, Read Only Memory (ROM) 1008, an 110adapter 1010 for connecting peripheral devices such as disk storageunits 1012 to the bus 1004, a user interface adapter 1014 for connectinga keyboard 1016, a mouse 1018, a speaker 1020, a microphone 1022, and/orother user interface devices such as a touch screen (not shown) to thebus 1004, communication adapter 1024 for connecting the hardwareconfiguration to a communication network 1026 (e.g., a data processingnetwork) and a display adapter 1028 for connecting the bus 1004 to adisplay device 1030.

[0084] An embodiment of the present invention may be written using JAVA,C, and the C++ language and utilize object oriented programmingmethodology. Object oriented programming (OOP) has become increasinglyused to develop complex applications. As OOP moves toward the mainstreamof software design and development, various software solutions requireadaptation to make use of the benefits of OOP. A need exists for theseprinciples of OOP to be applied to a messaging interface of anelectronic messaging system such that a set of OOP classes and objectsfor the messaging interface can be provided.

[0085] OOP is a process of developing computer software using objects,including the steps of analyzing the problem, designing the system, andconstructing the program. An object is a software package that containsboth data and a collection of related structures and procedures. Sinceit contains both data and a collection of structures and procedures, itcan be visualized as a self-sufficient component that does not requireother additional structures, procedures or data to perform its specifictask. OOP, therefore, views a computer program as a collection oflargely autonomous components, called objects, each of which isresponsible for a specific task. This concept of packaging data,structures, and procedures together in one component or module is calledencapsulation.

[0086] In general, OOP components are reusable software modules whichpresent an interface that conforms to an object model and which areaccessed at run-time through a component integration architecture. Acomponent integration architecture is a set of architecture mechanismswhich allow software modules in different process spaces to utilize eachothers capabilities or functions. This is generally done by assuming acommon component object model on which to build the architecture. It isworthwhile to differentiate between an object and a class of objects atthis point. An object is a single instance of the class of objects,which is often just called a class. A class of objects can be viewed asa blueprint, from which many objects can be formed.

[0087] OOP allows the programmer to create an object that is a part ofanother object. For example, the object representing a piston engine issaid to have a composition-relationship with the object representing apiston. In reality, a piston engine comprises a piston, valves and manyother components; the fact that a piston is an element of a pistonengine can be logically and semantically represented in OOP by twoobjects.

[0088] OOP also allows creation of an object that “depends from” anotherobject. If there are two objects, one representing a piston engine andthe other representing a piston engine wherein the piston is made ofceramic, then the relationship between the two objects is not that ofcomposition. A ceramic piston engine does not make up a piston engine.Rather it is merely one kind of piston engine that has one morelimitation than the piston engine; its piston is made of ceramic. Inthis case, the object representing the ceramic piston engine is called aderived object, and it inherits all of the aspects of the objectrepresenting the piston engine and adds further limitation or detail toit. The object representing the ceramic piston engine “depends from” theobject representing the piston engine. The relationship between theseobjects is called inheritance.

[0089] When the object or class representing the ceramic piston engineinherits all of the aspects of the objects representing the pistonengine, it inherits the thermal characteristics of a standard pistondefined in the piston engine class. However, the ceramic piston engineobject overrides these ceramic specific thermal characteristics, whichare typically different from those associated with a metal piston. Itskips over the original and uses new functions related to ceramicpistons. Different kinds of piston engines have differentcharacteristics, but may have the same underlying functions associatedwith it (e.g., how many pistons in the engine, ignition sequences,lubrication, etc.). To access each of these functions in any pistonengine object, a programmer would call the same functions with the samenames, but each type of piston engine may have different/overridingimplementations of functions behind the same name. This ability to hidedifferent implementations of a function behind the same name is calledpolymorphism and it greatly simplifies communication among objects.

[0090] With the concepts of composition-relationship, encapsulation,inheritance and polymorphism, an object can represent just aboutanything in the real world. In fact, one's logical perception of thereality is the only limit on determining the kinds of things that canbecome objects in object-oriented software. Some typical categories areas follows:

[0091] Objects can represent physical objects, such as automobiles in atraffic-flow simulation, electrical components in a circuit-designprogram, countries in an economics model, or aircraft in anair-traffic-control system.

[0092] Objects can represent elements of the computer-user environmentsuch as windows, menus or graphics objects.

[0093] An object can represent an inventory, such as a personnel file ora table of the latitudes and longitudes of cities.

[0094] An object can represent user-defined data types such as time,angles, and complex numbers, or points on the plane.

[0095] With this enormous capability of an object to represent justabout any logically separable matters, OOP allows the software developerto design and implement a computer program that is a model of someaspects of reality, whether that reality is a physical entity, aprocess, a system, or a composition of matter. Since the object canrepresent anything, the software developer can create an object whichcan be used as a component in a larger software project in the future.

[0096] If 90% of a new OOP software program consists of proven, existingcomponents made from preexisting reusable objects, then only theremaining 10% of the new software project has to be written and testedfrom scratch. Since 90% already came from an inventory of extensivelytested reusable objects, the potential domain from which an error couldoriginate is 10% of the program. As a result, OOP enables softwaredevelopers to build objects out of other, previously built objects.

[0097] This process closely resembles complex machinery being built outof assemblies and subassemblies. OOP technology, therefore, makessoftware engineering more like hardware engineering in that software isbuilt from existing components, which are available to the developer asobjects. All this adds up to an improved quality of the software as wellas an increased speed of its development.

[0098] Programming languages are beginning to fully support the OOPprinciples, such as encapsulation, inheritance, polymorphism, andcomposition-relationship. With the advent of the C++ language, manycommercial software developers have embraced OOP. C++ is an OOP languagethat offers a fast, machine-executable code. Furthermore, C++ issuitable for both commercial-application and systems-programmingprojects. For now, C++ appears to be the most popular choice among manyOOP programmers, but there is a host of other OOP languages, such asSmalltalk, Common Lisp Object System (CLOS), and Eiffel. Additionally,OOP capabilities are being added to more traditional popular computerprogramming languages such as Pascal.

[0099] The benefits of object classes can be summarized, as follows:

[0100] Objects and their corresponding classes break down complexprogramming problems into many smaller, simpler problems.

[0101] Encapsulation enforces data abstraction through the organizationof data into small, independent objects that can communicate with eachother. Encapsulation protects the data in an object from accidentaldamage, but allows other objects to interact with that data by callingthe object's member functions and structures.

[0102] Subclassing and inheritance make it possible to extend and modifyobjects through deriving new kinds of objects from the standard classesavailable in the system. Thus, new capabilities are created withouthaving to start from scratch.

[0103] Polymorphism and multiple inheritance make it possible fordifferent programmers to mix and match characteristics of many differentclasses and create specialized objects that can still work with relatedobjects in predictable ways.

[0104] Class hierarchies and containment hierarchies provide a flexiblemechanism for modeling real-world objects and the relationships amongthem.

[0105] Libraries of reusable classes are useful in many situations, butthey also have some limitations. For example:

[0106] Complexity. In a complex system, the class hierarchies forrelated classes can become extremely confusing, with many dozens or evenhundreds of classes.

[0107] Flow of control. A program written with the aid of classlibraries is still responsible for the flow of control (i.e., it mustcontrol the interactions among all the objects created from a particularlibrary). The programmer has to decide which functions to call at whattimes for which kinds of objects.

[0108] Duplication of effort. Although class libraries allow programmersto use and reuse many small pieces of code, each programmer puts thosepieces together in a different way. Two different programmers can usethe same set of class libraries to write two programs that do exactlythe same thing but whose internal structure (i.e., design) may be quitedifferent, depending on hundreds of small decisions each programmermakes along the way. Inevitably, similar pieces of code end up doingsimilar things in slightly different ways and do not work as welltogether as they should.

[0109] Class libraries are very flexible. As programs grow more complex,more programmers are forced to reinvent basic solutions to basicproblems over and, over again. A relatively new extension of the classlibrary concept is to have a framework of class libraries. Thisframework is more complex and consists of significant collections ofcollaborating classes that capture both the small scale patterns andmajor mechanisms that implement the common requirements and design in aspecific application domain. They were first developed to freeapplication programmers from the chores involved in displaying menus,windows, dialog boxes, and other standard user interface elements forpersonal computers.

[0110] Frameworks also represent a change in the way programmers thinkabout the interaction between the code they write and code written byothers. In the early days of procedural programming, the programmercalled libraries provided by the operating system to perform certaintasks, but basically the program executed down the page from start tofinish, and the programmer was solely responsible for the flow ofcontrol. This was appropriate for printing out paychecks, calculating amathematical table, or solving other problems with a program thatexecuted in just one way.

[0111] The development of graphical user interfaces began to turn thisprocedural programming arrangement inside out. These interfaces allowthe user, rather than program logic, to drive the program and decidewhen certain actions should be performed. Today, most personal computersoftware accomplishes this by means of an event loop which monitors themouse, keyboard, and other sources of external events and calls theappropriate parts of the programmer's code according to actions that theuser performs. The programmer no longer determines the order in whichevents occur. Instead, a program is divided into separate pieces thatare called at unpredictable times and in an unpredictable order. Byrelinquishing control in this way to users, the developer creates aprogram that is much easier to use. Nevertheless, individual pieces ofthe program written by the developer still call libraries provided bythe operating system to accomplish certain tasks, and the programmermust still determine the flow of control within each piece after it'scalled by the event loop. Application code still “sits on top of” thesystem.

[0112] Even event loop programs require programmers to write a lot ofcode that should not need to be written separately for everyapplication. The concept of an application framework carries the eventloop concept further. Instead of dealing with all the nuts and bolts ofconstructing basic menus, windows, and dialog boxes and then makingthese things all work together, programmers using application frameworksstart with working application code and basic user interface elements inplace. Subsequently, they build from there by replacing some of thegeneric capabilities of the framework with the specific capabilities ofthe intended application.

[0113] Application frameworks reduce the total amount of code that aprogrammer has to write from scratch. However, because the framework isreally a generic application that displays windows, supports copy andpaste, and so on, the programmer can also relinquish control to agreater degree than event loop programs permit. The framework code takescare of almost all event handling and flow of control, and theprogrammer's code is called only when the framework needs it (e.g., tocreate or manipulate a proprietary data structure).

[0114] A programmer writing a framework program not only relinquishescontrol to the user (as is also true for event loop programs), but alsorelinquishes the detailed flow of control within the program to theframework. This approach allows the creation of more complex systemsthat work together in interesting ways, as opposed to isolated programs,having custom code, being created over and over again for similarproblems.

[0115] Thus, as is explained above, a framework basically is acollection of cooperating classes that make up a reusable designsolution for a given problem domain. It typically includes objects thatprovide default behavior (e.g., for menus and windows), and programmersuse it by inheriting some of that default behavior and overriding otherbehavior so that the framework calls application code at the appropriatetimes.

[0116] There are three main differences between frameworks and classlibraries:

[0117] Behavior versus protocol. Class libraries are essentiallycollections of behaviors that you can call when you want thoseindividual behaviors in your program. A framework, on the other hand,provides not only behavior but also the protocol or set of rules thatgovern the ways in which behaviors can be combined, including rules forwhat a programmer is supposed to provide versus what the frameworkprovides.

[0118] Call versus override. With a class library, the code theprogrammer instantiates objects and calls their member functions. It'spossible to instantiate and call objects in the same way with aframework (i.e., to treat the framework as a class library), but to takefull advantage of a framework's reusable design, a programmer typicallywrites code that overrides and is called by the framework. The frameworkmanages the flow of control among its objects. Writing a programinvolves dividing responsibilities among the various pieces of softwarethat are called by the framework rather than specifying how thedifferent pieces should work together.

[0119] Implementation versus design. With class libraries, programmersreuse only implementations, whereas with frameworks, they reuse design.A framework embodies the way a family of related programs or pieces ofsoftware work. It represents a generic design solution that can beadapted to a variety of specific problems in a given domain. Forexample, a single framework can embody the way a user interface works,even though two different user interfaces created with the sameframework might solve quite different interface problems.

[0120] Thus, through the development of frameworks for solutions tovarious problems and programming tasks, significant reductions in thedesign and development effort for software can be achieved.

[0121] Thus, it is seen that a system, method and article of manufactureare provided for determining a location of wireless device. One skilledin the art will appreciate that the present invention can be practicedby other than the above-described embodiments, which are presented inthis description for purposes of illustration and not of limitation. Thedescription and examples set forth in this specification and associateddrawings only set forth preferred embodiment(s) of the presentinvention. The specification and drawings are not intended to limit theexclusionary scope of this patent document. Many designs other than theabove-described embodiments will fall within the literal and/or legalscope of the following claims, and the present invention is limited onlyby the claims that follow. It is noted that various equivalents for theparticular embodiments discussed in this description may practice theinvention as well.

What is claimed is:
 1. A method for determining a location of an ultra-wideband wireless device, comprising: transmitting a first request to at least two ultra-wideband devices having substantially fixed locations for determining a location of a first ultra-wideband wireless device; and transmitting a second request to a least one additional ultra-wideband device if the location of the first ultra-wideband wireless device cannot be determined using data received in response to the first request.
 2. The method of claim 1, wherein the additional ultra-wideband device has either a substantially fixed location or is a mobile ultra-wideband device.
 3. The method of claim 1, wherein the additional ultra-wideband device determines its location from data received from other ultra-wideband devices not queried by the first ultra-wideband device.
 4. The method of claim 1, wherein the additional ultra-wideband device determines its location from data received from a combination of ultra-wideband devices queried by the first ultra-wideband device and other ultra-wideband devices not queried by the first ultra-wideband device.
 5. The method of claim 1, wherein the first ultra-wideband device determines its location from data received from the additional ultra-wideband device and from at least one of the ultra-wideband devices having substantially fixed locations.
 6. The method of claim 1, wherein the first ultra-wideband device determines its location from data received only from the additional ultra-wideband devices.
 7. The method of claim 1, wherein the second request is re-transmitted by the first ultra-wideband device.
 8. The method of claim 7, wherein the second request is retransmitted at a higher power level if an insufficient number of responses are received in response to the retransmission.
 9. The method of claim 1, wherein the first ultra-wideband device obtains information relating to the distance between the first ultra-wideband wireless device and the additional ultra-wideband device, and a scaling factor.
 10. The method of claim 1, wherein the first ultra-wideband device obtains information to update an internal clock of the first wireless device.
 11. The method of claim 1, wherein the first ultra-wideband device determines a location and an elevation using data received in response to the first and second requests.
 12. The method of claim 11, wherein the elevation is an elevation relative to an elevation of an ultra-wideband device responding to the first and second request.
 13. The method of claim 11, wherein the elevation is an elevation relative to a sea level.
 14. The method of claim 11, wherein the determination of the location and the elevation employs data obtained from any one of: a terrain map, a topographical map, and a historical map.
 15. A system for determining a location of an ultra-wideband wireless device, comprising: logic for transmitting a first request to at least two ultra-wideband devices having substantially fixed locations for determining a location of a first ultra-wideband wireless device; and logic for transmitting a second request to a least one additional ultra-wideband device if the location of the first ultra-wideband wireless device cannot be determined using data received in response to the first request.
 16. The system of claim 15, wherein the additional ultra-wideband device determines its location from data received from other ultra-wideband devices not queried by the first ultra-wideband device.
 17. The system of claim 15, wherein the second request is re-transmitted by the first ultra-wideband device.
 18. The system of claim 15, wherein the second request is retransmitted at a higher power level if an insufficient number of responses are received in response to the retransmission.
 19. The system of claim 15, wherein the first ultra-wideband device obtains information to update an internal clock of the first wireless device.
 20. The system of claim 15, wherein the first ultra-wideband device determines a location and an elevation using data received in response to the first and second requests.
 21. The system of claim 20, wherein the elevation is an elevation relative to an elevation of an ultra-wideband device responding to the first and second request.
 22. The system of claim 20, wherein the elevation is an elevation relative to a sea level.
 23. The system of claim 20, wherein the determination of the location and the elevation employs data obtained from any one of: a terrain map, a topographical map, and a historical map.
 24. A method for determining a location of an ultra-wideband wireless device, comprising: transmitting a first request to at least three mobile ultra-wideband devices for determining a location of a first ultra-wideband wireless device; and transmitting a second request to a least one additional ultra-wideband device if the location of the first ultra-wideband wireless device cannot be determined using data received in response to the first request.
 25. The method of claim 24, wherein the additional ultra-wideband device has either a substantially fixed location or is a mobile ultra-wideband device.
 26. The method of claim 24, wherein the additional ultra-wideband device determines its location from data received from other ultra-wideband devices not queried by the first ultra-wideband device.
 27. The method of claim 24, wherein the additional ultra-wideband device determines its location from data received from a combination of ultra-wideband devices queried by the first ultra-wideband device and other ultra-wideband devices not queried by the first ultra-wideband device.
 28. The method of claim 24, wherein the first ultra-wideband device determines its location from data received from the additional ultra-wideband device and from at least one of the ultra-wideband devices having substantially fixed locations.
 29. The method of claim 24, wherein the first ultra-wideband device determines its location from data received only from the additional ultra-wideband devices.
 30. The method of claim 24, wherein the second request is re-transmitted by the first ultra-wideband device.
 31. The method of claim 30, wherein the second request is retransmitted at a higher power level if an insufficient number of responses are received in response to the retransmission.
 32. The method of claim 24, wherein the first ultra-wideband device obtains information relating to the distance between the first ultra-wideband wireless device and the additional ultra-wideband device, and a scaling factor.
 33. The method of claim 24, wherein the first ultra-wideband device obtains information to update an internal clock of the first wireless device.
 34. The method of claim 24, wherein the first ultra-wideband device determines a location and an elevation using data received in response to the first and second requests.
 35. The method of claim 34, wherein the elevation is an elevation relative to an elevation of an ultra-wideband device responding to the first and second request.
 36. The method of claim 34, wherein the elevation is an elevation relative to a sea level.
 37. The method of claim 34, wherein the determination of the location and the elevation employs data obtained from any one of: a terrain map, a topographical map, and a historical map.
 38. A system for determining a location of an ultra-wideband wireless device, comprising: logic for transmitting a first request to at least three mobile ultra-wideband devices for determining a location of a first ultra-wideband wireless device; and logic for transmitting a second request to a least one additional ultra-wideband device if the location of the first ultra-wideband wireless device cannot be determined using data received in response to the first request.
 39. The system of claim 38, wherein the additional ultra-wideband device determines its location from data received from other ultra-wideband devices not queried by the first ultra-wideband device.
 40. The system of claim 38, wherein the second request is re-transmitted by the first ultra-wideband device.
 41. The system of claim 38, wherein the second request is retransmitted at a higher power level if an insufficient number of responses are received in response to the retransmission.
 42. The system of claim 38, wherein the first ultra-wideband device obtains information to update an internal clock of the first wireless device.
 43. The system of claim 38, wherein the first ultra-wideband device determines a location and an elevation using data received in response to the first and second requests.
 44. The system of claim 43, wherein the elevation is an elevation relative to an elevation of an ultra-wideband device responding to the first and second request.
 45. The system of claim 43, wherein the elevation is an elevation relative to a sea level.
 46. The system of claim 43, wherein the determination of the location and the elevation employs data obtained from any one of: a terrain map, a topographical map, and a historical map. 